﻿using System;
using System.Collections.Generic;
using System.Text;
using Meqs.Entity;

namespace Meqs.Logic.Interface
{
    /// <summary>
    /// 学校查看学校排名、前x名等报表逻辑层
    /// </summary>
    public interface ISchoolStuReportLogic : ICommonLogic<SchoolStuReport, int>
    {
        /// <summary>
        /// 学校自建考试考生前x名，后x名成绩查询报表 
        /// </summary>
        /// <param name="examId">考试id</param>
        /// <param name="schoolMark">学校编号</param>
        /// <param name="condition">排序条件，desc还是asc</param>
        /// <param name="indexNum">名次，前几名后几名</param>
        /// <returns></returns>
        IList<SchoolStuReport> SelectStuSchoolPositionReport(int examId, string schoolMark, string condition, int indexNum, string subjectCondition);
        /// <summary>
        /// 学生模糊查询 前x名，后x名成绩查询报表  
        /// </summary>
        /// <param name="examId"></param>
        /// <param name="schoolMark"></param>
        /// <param name="stuSelectInfo"></param>
        /// <returns></returns>
        IList<SchoolStuReport> SelectStuSchoolPositionReportEx(int examId, string schoolMark, string stuSelectInfo);
        


        /// <summary>
        /// 学校自建考试考生高于X分，低于X分的成绩查询报表
        /// </summary>
        /// <param name="examId">考试id</param>
        /// <param name="schoolMark">学校编号</param>
        /// <param name="condition">排序条件，desc还是asc</param>
        /// <param name="indexNum">名次，前几名后几名</param>
        /// <param name="subjectCondition">科目查询条件"and subjectId=46"</param>
        /// <returns></returns>
        IList<SchoolStuReport> SelectStuSchoolScoreReport(int examId, string schoolMark, string sign, int indexNum, string subjectCondition);

        IList<SchoolStuReport> SelectStuSchoolScoreReportEx(int examId, string schoolMark, string stuSelectInfo);

        /// <summary>
        /// 学校统考考生前x名，后x名成绩查询报表 
        /// </summary>
        /// <param name="examId">考试id</param>
        /// <param name="schoolMark">学校编号</param>
        /// <param name="condition">排序条件，desc还是asc</param>
        /// <param name="indexNum">名次，前几名后几名</param>
        /// <returns></returns>
        IList<SchoolStuReport> SelectStuEduPositionReport(int examId, string schoolMark, string condition, int indexNum, string subjectCondition, string scoreName);

        IList<SchoolStuReport> SelectStuEduPositionReportEx(int examId, string schoolMark,string stuSelectInfo,string scoreName);

        /// <summary>
        /// 学校统考考生高于X分，低于X分的成绩查询报表
        /// </summary>
        /// <param name="examId">考试id</param>
        /// <param name="schoolMark">学校编号</param>
        /// <param name="condition">排序条件，desc还是asc</param>
        /// <param name="indexNum">名次，前几名后几名</param>
        /// <param name="subjectCondition">科目查询条件"and subjectId=46"</param>
        /// <returns></returns>
        IList<SchoolStuReport> SelectStuEduScoreReport(int examId, string schoolMark, string sign, int indexNum, string subjectCondition, string scoreName);

        IList<SchoolStuReport> SelectStuEduScoreReportEx(int examId, string schoolMark, string stuSelectInfo,string scoreName);
    }
}
